User interface for initiating activities in an electronic device

ABSTRACT

In one embodiment, a user interface is presented for initiating activities in an electronic device. The user interface includes an element referred to as a “launch wave”, which can be activated at substantially any time, even if the user is engaged with an activity, without requiring the user to first return to a home screen. In various embodiments, the user can activate the launch wave by performing a gesture, or by pressing a physical button, or by tapping at a particular location on a touchscreen, or by activating a keyboard command. In one embodiment, activation of the launch wave and selection of an item from the launch wave can be performed in one continuous operation on a touch-sensitive screen, so as to improve the expediency and convenience of launching applications and other items.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a Continuation of U.S. patent applicationSer. No. 12/505,543, filed Jul. 20, 2009 now U.S. Pat. No. 8,159,469,titled “USER INTERFACE FOR INITIATING ACTIVITIES IN AN ELECTRONICDEVICE,” which claims priority as a continuation-in-part of U.S. patentapplication Ser. No. 12/115,992, filed May 6, 2008, titled “EXTENDEDTOUCH-SENSITIVE CONTROL AREA FOR ELECTRONIC DEVICE;” each of which isincorporated herein by reference in its entirety.

FIELD OF THE INVENTION

In various embodiments, the present invention relates to user interfacesfor launching applications and other activities in electronic devices,and more particularly to systems and methods for presenting agesture-based user interface for launching applications and otheractivities in an electronic device having a touch-sensitive screen.

DESCRIPTION OF THE RELATED ART

Electronic devices for mobile computing and communications are becomingincreasingly sophisticated and powerful. Many such devices, includingsmartphones, personal digital assistants, handheld computers, and thelike, are capable of running software applications for performingvarious tasks. Users interact with such software applications in amanner that is similar to well-known interactions with softwareapplications on personal computers: users can launch and quitapplications as needed, and in some cases can even keep two or moreapplications open concurrently, switching between the open applicationsas desired. Many such mobile devices include a robust operating systemthat manages the various applications, memory usage, and other functionsand operations of the device. In addition, the operating system oftenpresents a graphical user interface that presents output to the user andreceives input from the user.

One increasingly popular type of input/output paradigm for mobiledevices is the touch-sensitive screen, or “touchscreen”.Touchscreen-enabled devices can provide a robust graphical userinterface that allows a user to interact with the device by touching,dragging, and pointing at displayed elements on a touchscreen.Applications can be launched by tapping on an icon from a launch screen.While an application is open, the touchscreen is used to both displayoutput to the user and to accept user input. An example of a mobiledevice equipped with such a touchscreen is the iPhone, available fromApple Inc. of Cupertino, Calif.

On many such devices, the process of opening an application can becumbersome at times. Generally, the user launches an application byreturning to a home screen, where the user is presented with a number oficons; the user then taps the icon for the application he or she wishesto launch. In some cases, two or more “pages” of applications may beprovided, so that the user must scroll to the appropriate page beforethe desired application can be identified and launched. In addition,applications are often arranged in a non-categorized, non-hierarchicalmanner, making it more difficult for the user to quickly find theparticular one he or she wishes to launch.

Existing devices often fail to provide a mechanism for directlylaunching an application without first returning to the home screen.Therefore, in many situations, launching an application is a multi-stepprocess that can be distracting, annoying, and/or burdensome for theuser. For example, the user must first tap a physical “home” button tothe home screen, then locate the icon for the desired application(scrolling to other pages in some cases), and then tap the icon tolaunch the application.

On some devices, it is known to provide functionality for easier accessto the most commonly used applications, for example by providing an areaon the screen where icons for these applications can be found,regardless of which of the application launch “pages” is currently beingdisplayed. Such an area can be referred to as a “quick-launch bar” or“dock”. However, even for the applications included within the dock,access can be cumbersome, as the user must first return to the homescreen before the dock appears. Thus, even for commonly usedapplications, existing devices fail to provide a quick, easy mechanismfor directly launching an application without first returning to thehome screen.

What is needed is a mechanism that allows a user to launch applicationsin an electronic device such as a mobile device, without requiring theuser to return to a home screen. What is further needed is a mechanismthat allows a user to launch applications directly from virtually anyscreen, without first returning to a home screen. What is further neededis application launch functionality that avoids the limitations andshortcomings of prior art systems.

SUMMARY

In various embodiments, the system and method of the present inventionare implemented in an electronic device such as a mobile device forperforming computing and communications functions. The device may becapable of running software applications for performing variousfunctions, and may include the capability to run two or more softwareapplications concurrently. In various embodiments, such softwareapplications may provide the ability to open documents, initiate and/orrespond to communications in various forms (such as telephone calls,email messages, instant messages, text messages, and the like), and/orbrowse web pages or view other online content.

The term “activity” is used herein to refer to a software application,task, document, message, page, image, card, window, content item, or anyother construct representing data and/or programmatically definablefunctionality, and with which the user can interact via a user interfaceon the electronic device. In various embodiments described herein,activities can be represented by a user interface on a display screen,and a user can interact with activities via an input device.

For purposes of the description provided herein, the terms “applicationlauncher”, “launcher”, and/or “launch wave” are used interchangeably torefer to functionality for launching activities according to variousembodiments of the present invention. The launch wave can be used toopen and/or activate applications, documents, tasks, applets, web pages,and/or any other activity; accordingly, the terms “applicationlauncher”, “launcher”, and/or “launch wave” are not intended to restrictthe scope of the claimed invention to the launching of applications.Rather, one skilled in the art will recognize that the techniquesdescribed herein can be used for launching, invoking, or initiating anyactivity, or opening any document or other item.

In one embodiment, a user interface is presented whereby the launch waveof the present invention can be activated at substantially any time,without requiring the user to first return to a home screen. The usercan activate the launch wave by performing a gesture, or by pressing aphysical button, or by tapping at a particular location on atouchscreen, or by activating a keyboard command. In one embodiment,activation of the launch wave and selection of an item from the launchwave can be performed in one continuous operation on a touch-sensitivescreen, so as to improve the expediency and convenience of launchingapplications and other items.

In one embodiment, the launch wave is not continuously displayed while auser is engaged in interactions with an activity on the screen of thedevice. However, the user can activate the launch wave while engagedwith such an activity, thereby causing the launch wave to appear andproviding the user with an opportunity to launch an activity directlyusing the launch wave. In this manner, the system and method of thepresent invention improves the user experience and allows users to moreeasily open applications and other activities with a minimum ofdisruption and burden.

In one embodiment, the system and method of the present inventionoperate in connection with a touch-sensitive surface that includes thedisplay screen but also extends beyond the display screen, as describedin related U.S. patent application Ser. No. 12/115,992, filed May 6,2008, for “Extended Touch-Sensitive Control Area for Electronic Device”,the disclosure of which is incorporated herein by reference. Forexample, in one embodiment, the launch wave is activated by a gesturethat is performed in the touch-sensitive area outside the displayscreen, referred to as a “gesture area;” in another embodiment, thelaunch wave is activated by a gesture that begins in the gesture areaand continues into the touch-sensitive display screen. In this manner,as described in more detail below, the user can activate the launch waveusing such a gesture, and then select among a plurality of displayedactivities in the launch wave, all in a continuous gesture that beginsin the gesture area and ends in the display screen.

In one embodiment, the system and method of the present invention areimplemented as a visual element that resembles a wave. The useractivates the wave by dragging his or her finger from the gesture areaonto the touch-sensitive screen, in a particular direction (such as anupward direction). The launcher is displayed as a wave that changes inappearance as the user continues to move his or her finger; hence theterm “launch wave” to refer to the user interface element. One skilledin the art will recognize, however, that the term “launch wave” is usedherein for ease of nomenclature only; the techniques of the presentinvention can be implemented with user interface elements having otherappearances that do not necessarily resemble a wave.

In one embodiment, while the launch wave is being displayed, verticalmotion of the finger causes the wave to follow the vertical position ofthe finger; for example, the wave may stay just above the position ofthe finger, so that it is not obscured by the finger. In one embodiment,horizontal motion of the finger causes different items within the launchwave to be highlighted. Various mechanisms for highlighting items in thelaunch wave are described herein. Once the user's finger position hascaused the desired item to be highlighted, the user can activate, oropen, the activity associated with the item by moving his or her fingeraway from the touchscreen, thereby ending the gesture. In oneembodiment, the user can cancel the launch wave by returning his or herfinger to the gesture area, or otherwise sliding off an edge of thescreen, before ending contact with the screen.

In this manner, the system and method of the present invention allow auser to launch an activity directly and without first activating a homescreen. In one embodiment, the activity can be launched with asingle-handed gesture that is optimized for ambidextrous use. Thus, thesystem and method of the present invention provide an improved mechanismfor launching activities in an electronic device.

In other embodiments, other variations and enhancements can beimplemented. For example, in one embodiment, a hierarchical launch wavecan be implemented, wherein highlighting of an item in the launch wavecauses other, subordinate items to be displayed. The user can navigateamong the top-level and subordinate items simply by dragging his or herfinger around the screen. The user can select a desired item, eithertop-level or subordinate, by removing his or her finger from the screenwhile the desired item is highlighted.

In one embodiment, the techniques described herein can be combined withthe card repositioning and/or grouping techniques described in relatedU.S. patent application Ser. No. 12/416,279, filed Apr. 1, 2009, for“Card Metaphor for Activities in a Computing Device”, the disclosure ofwhich is incorporated herein by reference.

The various features described above and herein can be implementedsingly or in any combination, as will be apparent to one skilled in theart. Additional features and advantages will become apparent from thedescription provided below.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings illustrate several embodiments of theinvention and, together with the description, serve to explain theprinciples of the invention. One skilled in the art will recognize thatthe particular embodiments illustrated in the drawings are merelyexemplary, and are not intended to limit the scope of the presentinvention.

FIG. 1 is an example of a device for implementing the present invention,according to one embodiment.

FIG. 2 depicts a functional architecture for presenting a launch waveaccording to one embodiment of the present invention.

FIG. 3A is a screen shot depicting an example of a home screen includinga quick launch bar according to one embodiment.

FIG. 3B is a screen shot depicting an example of a launch screenincluding a quick launch bar according to one embodiment.

FIG. 3C is a screen shot depicting an example of a gesture for invokinga launch wave from a screen displaying a user interface for anapplication, according to one embodiment.

FIGS. 3D through 3F are screen shots depicting an example of a launchwave according to one embodiment.

FIG. 3G is a screen shot depicting an example of a gesture for invokinga launch wave from a screen displaying a quick launch bar, according toone embodiment.

FIG. 4 depicts an example of a gesture that can be used to activate thelaunch wave of the present invention, according to one embodiment.

FIG. 5 is a flowchart depicting a method for presenting a launch waveaccording to one embodiment of the present invention.

FIGS. 6A through 6C are a series of screen shots depicting an example ofthe operation of a launch wave according to one embodiment.

FIG. 7A is a flowchart depicting a method for presenting a hierarchicallaunch wave according to one embodiment of the present invention.

FIG. 7B is a flowchart depicting a method for presenting a hierarchicallaunch wave according to another embodiment of the present invention.

FIGS. 8A through 8C are a series of screen shots depicting an example ofthe operation of a hierarchical launch wave according to one embodiment.

FIGS. 9A and 9B are a series of screen shots depicting an example of agrid layout for a hierarchical launch wave according to one embodiment

DETAILED DESCRIPTION OF THE EMBODIMENTS

For purposes of the description provided herein, the terms “applicationlauncher”, “launcher”, and/or “launch wave” are used interchangeably torefer to functionality for launching activities according to variousembodiments of the present invention. The launch wave can be used toopen and/or activate applications, documents, tasks, applets, web pages,and/or any other activity; accordingly, the terms “applicationlauncher”, “launcher”, and/or “launch wave” are not intended to restrictthe scope of the claimed invention to the launching of applications.Rather, one skilled in the art will recognize that the techniquesdescribed herein can be used for launching any activity. In addition,that the term “launch wave” is used herein for ease of nomenclatureonly; the techniques of the present invention can be implemented withuser interface elements having other appearances that do not necessarilyresemble a wave.

For purposes of the description provided herein, the followingadditional terms are defined:

-   -   Touch-sensitive surface: a surface of a device that is capable        of detecting contact;    -   Touch-sensitive screen (or touchscreen): a touch-sensitive        surface that also functions as a display screen;    -   Gesture: a touch command that includes a distinctive motion that        can be interpreted to specify a command or action to be        performed;    -   Gesture area: a touch-sensitive surface that does not function        as a display screen.        System Architecture

In various embodiments, the present invention can be implemented on anyelectronic device, such as a handheld computer, personal digitalassistant (PDA), personal computer, kiosk, cellular telephone, and thelike. For example, the invention can be implemented as a user interfacefor launching software applications and other activities on such adevice. Accordingly, the present invention can be implemented as part ofan operating system running on such a device.

In various embodiments, the invention is particularly well-suited todevices such as smartphones, handheld computers, and PDAs. One skilledin the art will recognize, however, that the invention can be practicedin many other contexts, including any environment in which it is usefulto provide quick access to a user interface element for initiatingapplications and other activities. Accordingly, the followingdescription is intended to illustrate the invention by way of example,rather than to limit the scope of the claimed invention.

Referring now to FIG. 1, there is shown an example of an example of adevice 100 having a touch-sensitive screen 101 and a gesture area 102,according to one embodiment.

For illustrative purposes, device 100 as shown in FIG. 1 is a personaldigital assistant or smartphone. Such devices commonly have telephone,email, and text messaging capability, and may perform other functionsincluding, for example, playing music and/or video, surfing the web,running productivity applications, and the like. The present inventioncan be implemented in any type of device having a touch-sensitivescreen, and is not limited to devices having the listed functionality.In alternative embodiments, the invention can be implemented in devicesthat do not have touch-sensitive screens but that accept user input inother ways, such as via a trackpad, trackball, rocker switch, joystick,five-way switch, or the like. In addition, the particular layout ofdevice 100 as shown in FIG. 1 is merely exemplary and is not intended tobe restrictive of the scope of the claimed invention.

Gesture area 102 is an optional input mechanism for implementing thepresent invention. As described in more detail below, in one embodimentthe launch wave of the present invention is invoked in response to theuser performing a gesture that begins in gesture area 102 and continuesin an upward direction onto touch-sensitive screen 101. However, itother embodiments the launch wave may be invoked using other commandsand is not limited to the particular gesture described herein.Accordingly, in some embodiments, gesture area 102 can be omittedwithout departing from the essential characteristics of the invention asclaimed.

In various embodiments, touch-sensitive screen 101 and gesture area 102can be implemented using any technology that is capable of detecting alocation of contact. One skilled in the art will recognize that manytypes of touch-sensitive screens and surfaces exist and are well-knownin the art, including for example:

-   -   capacitive screens/surfaces, which detect changes in a        capacitance field resulting from user contact;    -   resistive screens/surfaces, where electrically conductive layers        are brought into contact as a result of user contact with the        screen or surface;    -   surface acoustic wave screens/surfaces, which detect changes in        ultrasonic waves resulting from user contact with the screen or        surface;    -   infrared screens/surfaces, which detect interruption of a        modulated light beam or which detect thermal induced changes in        surface resistance;    -   strain gauge screens/surfaces, in which the screen or surface is        spring-mounted, and strain gauges are used to measure deflection        occurring as a result of contact;    -   optical imaging screens/surfaces, which use image sensors to        locate contact;    -   dispersive signal screens/surfaces, which detect mechanical        energy in the screen or surface that occurs as a result of        contact;    -   acoustic pulse recognition screens/surfaces, which turn the        mechanical energy of a touch into an electronic signal that is        converted to an audio file for analysis to determine position of        the contact; and    -   frustrated total internal reflection screens, which detect        interruptions in the total internal reflection light path.

Any of the above techniques, or any other known touch detectiontechnique, can be used in connection with the device of the presentinvention, to detect user contact with screen 101, gesture area 102, orboth.

In one embodiment, the present invention can be implemented using othergesture recognition technologies that do not necessarily require contactwith the device. For example, a gesture may be performed over thesurface of a device (either over screen 101 or gesture area 102), or itmay begin over the surface of a device and terminate with a touch on thedevice (either on screen 101 or gesture area 102). It will be recognizedby one with skill in the art that the techniques described herein can beapplied to such non-touch-based gesture recognition techniques.

In one embodiment, device 100 as shown in FIG. 1 also has a physicalbutton 103. In one embodiment, physical button 103 can be used toperform some common function, such as to return to a home screen, toactivate a selected on-screen item, or to invoke the launch wave of thepresent invention. Physical button 103 is not needed for the presentinvention, and is shown for illustrative purposes only. In oneembodiment, physical button 103 is touch sensitive, so that the user'sgestures as entered in gesture area 102 and/or on screen 101 can beinitiated on button 103 and/or can pass over button 103 as well. Forpurposes of the following description, gesture area 102 will beconsidered to include button 103 for embodiments where button 103 istouch-sensitive. In one embodiment, such functionality is implementedusing techniques described in the above-cited related patentapplication.

In the example of FIG. 1, gesture area 102 is located immediately belowtouch-sensitive screen 101, with no gap between screen 101 and gesturearea 102. One skilled in the art will recognize that, in variousembodiments, gesture area 102 can be provided in any location withrespect to screen 101 and need not be placed immediately below screen101 as shown in FIG. 1. In addition, there may be a gap between gesturearea 102 and screen 101, without departing from the essentialcharacteristics of the present invention. Where a gap is present, device100 may simply ignore the gap when interpreting touch commands thatcross over from gesture area 102 to touch-sensitive screen 101, and viceversa.

In various embodiments, gesture area 102 can be visibly delineated onthe surface of device 100, if desired, for example by an outline aroundgesture area 102, or by providing a different surface texture, color,and/or finish for gesture area 102 as compared with other surfaces ofdevice 100. Such delineation is not necessary for operation of thepresent invention.

Referring now to FIG. 2, there is shown a functional architecture forpresenting a launch wave according to one embodiment of the presentinvention. Device 100 includes a processor 1101 for performing the stepsdescribed herein and for performing other operations related to theoperation of device 100, including running software programs and anoperating system, and controlling operation of various components ofdevice 100. Device 100 also includes input device 1104 (such as akeyboard, trackball, rocker switch, five-way switch, touch-sensitive pador screen, or the like), output device 1105 (such as display screen101), and memory 1106. In some embodiments, input device 1104 and outputdevice 1105 are implemented in combination, as for example theabove-described touch-sensitive screen 101 which presents output fromthe user and also accepts input, for example in the form of directmanipulation and/or activation of displayed user interface elements, aswell as gesture input.

Device 100 also includes storage device 1102, which may be a hard drive,flash memory, or any other fixed or removable component for datastorage. In various embodiments, device 100 can also include additionalcomponents, such as, optionally, network interface 1107 (such asBluetooth and/or wired connectivity to a network such as the Internet),and/or cellular network interface 1108 providing cellular telephonyfunctionality. It is well known to provide such functionality onsmartphones.

One skilled in the art will recognize that the functional architecturedepicted in FIG. 2 is merely exemplary, and that other arrangements andcomponents can be used for implementing the present invention. Theparticular components shown in FIG. 2 are not necessary to practicingthe invention as claimed herein; some components may be omitted, andothers added, without departing from the essential characteristics ofthe invention as set forth in the claims.

In one embodiment, the invention can be implemented as a feature of anoperating system running on device 100. Accordingly, certain aspects ofthe present invention can be implemented as part of a graphical userinterface for controlling software, including launching applications andother activities, on such device 100.

Launch Wave

Referring now to FIG. 3A, there is shown an example of a home screenincluding a quick launch bar 301, as depicted on display screen 101according to one embodiment. In one embodiment, this home screenrepresents an initial state of device 100, from which the user canactivate any of several activities represented by items 302A through302E. In the example, these items 302A through 302E are represented asicons. Tapping on one of the items 302 causes an activity (such as anapplication) to be launched.

In the example shown in FIG. 3A, item 302A opens a telephone activity;item 302B opens a contact list; item 302C opens an email application;item 302D opens a calendar; and item 302E opens a launch wave foraccessing additional activities. In some embodiments, the specific items302 shown in quick launch bar 301 are user-configurable, so that theuser can position items 302 for the most-commonly used activities as heor she sees fit.

In one embodiment, the user can activate item 302E to open a launchscreen so as to access additional activities. Referring now to FIG. 3B,there is shown an example of a launch screen 303 according to oneembodiment, as depicted on display screen 101. Additional items 302 areshown, along with the same quick launch bar 301 that was depicted inFIG. 3A. In some embodiments, multiple pages of items 302 can be madeavailable via launch screen 303; the user can scroll, for example in aleftward or rightward direction, to see other items 302. In oneembodiment, quick launch bar 301 remains at a fixed location, with thesame five items 302A through 302E, while user scrolls to see other items302 in launch screen 303. In this manner, the items 302A through 302Ethat are most commonly used remain available and easily accessible tothe user.

In one embodiment, device 100 is capable of running one or more softwareapplications. In one embodiment, while a software application or otheractivity is running, quick launch bar 301 is not displayed. In thismanner, valuable screen space is preserved so as to maximize the spaceavailable to the running activity. If, while an interface for anactivity is being displayed, the user wishes to launch another activity,he or she can return to launch screen 303 to select an activity.However, the system and method of the present invention provides amechanism by which the user can launch an activity while anotheractivity's interface is being displayed, without first returning tolaunch screen 303. According to various embodiments of the presentinvention, the user can launch an activity while another activity'sinterface is being displayed, using a single gesture.

Referring now to FIG. 3C there is shown a screen shot depicting anexample of a gesture for invoking a launch wave from a screen displayinga user interface 304 for a calendar application, according to oneembodiment. In one embodiment, as shown in FIG. 3C, substantially theentire screen 101 is devoted to the user interface 304 for the calendarapplication. In some embodiments, certain areas of the screen (notshown) can be reserved for status information, such as battery life,clock, and the like.

FIG. 3C depicts user's finger 601 (or thumb) moving in an upwarddirection onto screen 101. In one embodiment, such a gesture invokes alaunch wave to allow the user to select an activity to launch, as willbe described in more detail below. Referring now briefly to FIG. 4,there is shown gesture 401 that can be used to invoke the launch wave ofthe present invention, according to one embodiment. In the example,gesture 401 is an upward motion that begins in gesture area 102 andcontinues into screen 101. In one embodiment the launch wave ispresented once gesture 401 has extended a sufficient distance beyond thelower edge of screen 101.

Referring now to FIG. 3D, there is shown an example of launch wave 305according to one embodiment, wherein launch wave 305 is overlaid on userinterface 304 of a calendar application. This example illustrates thefact that the present invention allows the user to invoke launch wave305 without leaving the current activity, which in this case is thecalendar application. One skilled in the art will recognize that theparticular appearance, behavior, and layout of launch wave 305 asdepicted in FIG. 3D and as described herein are merely exemplary, andthat the invention can be implemented in other ways without departingfrom the essential characteristics as defined in the claims.

As described above, in one embodiment, the user invokes launch wave 305by performing a distinctive gesture, such as by dragging a finger in anupward direction, starting within gesture area 102 and continuing tomaintain contact with the front surface of device 100 as the finger isdragged upward onto screen 101. To complete the gesture, the userpositions his or her finger over the desired item 302 within launch wave305 and then releases his or her finger when the desired item 302 ishighlighted. Thus, the selection of the activity can be made in onecontinuous motion of the finger, or gesture, beginning in gesture area102 and ending on screen 101.

In some embodiments, launch wave 305 appears only after the user hasdragged the finger beyond a certain point on screen 101, or after thedrag distance exceeds some predetermined threshold. In otherembodiments, launch wave 305 appears in response to some other userinput, such as pressing a button, hitting a key on a keyboard, orperforming a distinctive gesture within gesture area 102 and/or onscreen 101.

In one embodiment, launch wave 305 is presented as a substantiallyhorizontal wave-like user interface element, as shown in FIG. 3D. Launchwave 305 includes any number of items 302 that can be selected foractivation; these items 302 can be represented as icons, text labels,images, or any combination thereof. In one embodiment, each item 302represents an activity that can be launched or opened, including forexample an application, web page, function, document, message, card,window, or the like. The number of items 302 presented in launch wave305 can be fixed or variable, or can be user-configurable.

In one embodiment, the items 302 that appear in launch wave 305correspond to the items 302 presented in quick launch bar 301 asdepicted in FIG. 3A. In another embodiment, different items 302 can bepresented in launch wave 305. In yet another embodiment, the particularitems 302 presented in launch wave 305 are context-sensitive, so thatdifferent items 302 may be presented depending on the particularactivity being performed at the time launch wave 305 is invoked, orbased on any other factors. Items 302 can be represented by staticicons, images, or text, or by animated or dynamic elements.

In one embodiment, the vertical position of launch wave 305 isdetermined by the current vertical position of the user's finger 601with respect to screen 101; as the user moves finger 601 up or downscreen 101, launch wave 305 moves to follow the finger movements. In oneembodiment, launch wave 305 remains just above the position of theuser's finger 601, so as not to be obscured by the user's finger 601. Inone embodiment, if the user moves finger 601 so that it is so close tothe top edge of screen 101 that launch wave 305 can no longer bedisplayed above the finger 601, launch wave 305 remains at or near thetop edge of screen 101 even if it may then be obscured by the user'sfinger 601.

In one embodiment, the appearance of launch wave 305 changes dependingon the horizontal position of the user's finger 601 with respect toscreen 101. Whichever item 302 is closest to the user's finger positionis highlighted, for example by being displayed with a distinctive visualappearance as compared with other items 302. For example, thehighlighted item may be displayed at a larger size than other itemsand/or it may be presented with a brighter appearance and/or some othervisual effect to distinguish it from other items 302. In addition, atext label 307 may be presented for the currently highlighted item 302,to enable the user to more easily identify the activity associated withthe highlighted item 302. As finger 601 moves horizontally across launchwave 305, different items 302 can be highlighted, and text label 307 maybe dismissed for non-highlighted items and introduced for the currentlyhighlighted item 302. In other embodiments, text label 307 is presentedfor all items 302.

Referring now also to FIGS. 3E and 3F, there are shown examples of theappearance of launch wave 305 as the user moves finger 601 to point tovarious items 302 within launch wave 305. For example, in FIG. 3D,Contacts item 302B is highlighted by being shown at the highest positionand at a larger size. In FIG. 3E, Phone item 302A is highlighted; inFIG. 3F, Calendar item 302D is highlighted. In addition, label 307 ispresented for the currently highlighted item in all three FIGS. 3D, 3E,and 3F.

In one embodiment, items 302 gradually increase in size as the user'sfinger 601 moves closer to them, and decrease in size as the user'sfinger moves further away. Thus, items 302 grow and shrink in acontinuous manner as the user moves finger 601 across screen 101, withthe relative size of each item 302 being dependent on its relativedistance from the user's finger 601. FIGS. 3D, 3E, and 3F illustrate thechanges in relative sizes of items 302 as the user's finger 601 moveshorizontally.

In one embodiment, launch wave 305 is presented with a wave-likeappearance, having an apex located at or near the user's fingerposition. Thus, the shape of launch wave 305 provides additionalfeedback as to the user's finger position, and further emphasizes thecurrently highlighted item 302 (since that item 302 is presented at avertical position that is higher than the vertical position of otheritems). In one embodiment, as the user moves finger 601 to the left orto the right, the apex of launch wave 305 moves to follow finger 601.FIGS. 3D, 3E, and 3F illustrate the changes to the appearance of launchwave 305 and its apex position as the user's finger 601 moveshorizontally.

In one embodiment, launch wave 305 is displayed as an overlay atop otheritems on screen 101. Thus, launch wave 305 can be presented while anapplication is running, and without disrupting the user's interactionwith the application. In various embodiments, launch wave 305 can takedifferent visual forms, and can be presented with a translucent,transparent, or partially translucent or transparent effect. FIGS. 3D,3E, and 3F illustrate the display of launch wave 305 overlaid oninterface 304 for a calendar application.

In one embodiment, the user selects an item 302 from launch wave 305 byremoving finger 601 from screen 101 while the item 302 is currentlyhighlighted. This action causes the activity associated with theselected item 302 to be launched, opened, or activated. For example, ifthe item 302 represents a software application, selection of the item302 causes the application to be launched. Upon selection of an item 302from launch wave 305 in this manner, launch wave 305 is dismissed.

In one embodiment, the user can dismiss launch wave 305 withoutselecting an item 302 and without opening, activating, or launching anactivity, by dragging finger 601 back down to gesture area 102 and thenremoving finger 601 from screen 101. In another embodiment, the user candismiss launch wave 305 by dragging finger 601 off an edge of screen101, or close to an edge of screen 101. Other mechanisms may also beprovided for dismissing launch wave 305 without opening, activating, orlaunching an activity.

For illustrative purposes, the operation of launch wave 305 has beendescribed in terms of a user's finger position on screen 101 and contactwith screen 101. However, one skilled in the art will recognize that thetechniques of the present invention can be implemented using other inputparadigms. For example, a user can invoke and manipulate launch waveusing a trackball, rocker switch, trackpad, keyboard, keypad, or anyother input device. A cursor can be presented on screen 101, for theuser to manipulate and move in order to select items from launch wave305. Thus, the particular implementation described in some detail above,in which user control of launch wave 305 is accomplished using fingermovements on a touch-sensitive screen, is intended to be illustrativebut not limiting of the scope of the invention as claimed herein.

As described above, FIGS. 3C through 3F depict an example of launch wave305 as presented over interface 304 for an activity. However, in oneembodiment, launch wave 305 can also be invoked from a launcher screenor other screen. FIG. 3G depicts an example in which the user invokeslaunch wave 305 while quick launch bar 301 is being displayed. In oneembodiment, such an action causes launch wave 305 to temporarily replacelaunch bar 301. FIG. 6A depicts an example of the displayed launch wave305 upon user input of the gesture shown in FIG. 3G. In one embodiment,a transition effect is presented so as to create the impression thatquick launch bar 301 is being transformed into launch wave 305.

Referring now to FIGS. 6A through 6C, there is shown a series of screenshots depicting an example of the operation of launch wave 305 accordingto one embodiment. In FIG. 6A, launch wave 305 has been invoked. Launchwave 305 is presented as a substantially horizontal wave-like element,having an apex located near the position of contact of user's finger601. Contacts item 302B is highlighted because it is the closest item302 to the position of contact of user's finger 601. In the example,contacts item 302B is highlighted by being displayed at a larger sizethan other items 302A, 302C, 302D, 302E. In addition, it is shown at ahigher vertical position than other items 302A, 302C, 302D, 302E, andtext label 307 further describing item 302B is displayed. In theexample, non-highlighted items 302A, 302C, 302D, 302E are shown atdifferent sizes depending on their relative distance from the positionof contact of user's finger 601.

In FIG. 6B, Phone item 302A is highlighted, and the apex of launch wave305 has shifted to the left from its previous position. Such a displaymight be presented, for example, in response to the user moving finger601 to the left so as to position the point of contact near phone item302A. Text label 307 for phone item 302A is presented. Relative sizes ofitems 302 are adjusted based on the new position of the point ofcontact.

In FIG. 6C, Calendar item 302D is highlighted, and the apex of launchwave 305 has shifted to the right from its previous position. Such adisplay might be presented, for example, in response to the user movingfinger 601 to the right so as to position the point of contact nearcalendar item 302D. Text label 307 for calendar item 302D is presented.Relative sizes of items 302 are adjusted based on the new position ofthe point of contact.

As described herein, the user can launch or open an activitycorresponding to any item 302 by removing finger 601 from screen 101while the item 302 is highlighted. In various embodiments, user candismiss launch wave 305 without launching an activity by sliding finger601 down the screen to gesture area 102, or by sliding finger 601 off ornear the edge of screen 101.

Method

Referring now to FIG. 5, there is shown a flowchart depicting a methodfor presenting launch wave 305 according to one embodiment of thepresent invention. Device 100 detects 501 gesture 401 or some other userinput indicating that launch wave 305 should be invoked. In response tothe user input, launch wave 305 is displayed 502 on screen 101. An item302 in launch wave 305 is highlighted 503, based on the horizontallocation of finger 601. As described above, in one embodiment the item302 closest to the point of contact of finger 601 with screen 101 ishighlighted.

A determination is made 504 as to whether the user has activated an item302. In one embodiment, the user activates an item 302 by removingfinger 601 from screen 101 while the desired item 302 is highlighted. Inanother embodiment, the user hits an Enter key or performs some othercommand while the desired item 302 is highlighted. In one embodiment,activating the highlighted item 302 results in opening or launching anapplication, document, or other activity associated with the highlighteditem 505. Launch wave 305 is dismissed 506 and the method ends 599.

If, in step 504, the user has not activated an item, a determination ismade 512 as to whether the user has dragged finger 601 off screen 101.In one embodiment, such an action indicates the user's intention todismiss launch wave 305 without activating an item 302. In otherembodiments, other commands or actions can be used to cause launch wave305 to be dismissed. In response to such action, launch wave 305 isdismissed 506 and the method ends 599.

If, in step 512, the user has not attempted to dismiss launch wave 305by dragging finger 601 off screen 101 or by some other action, adetermination is made 508 as to whether the user has moved finger 601 ina vertical direction. If so, launch wave 305 is moved 509 to a newvertical position based on the user's movement of finger 601. Asdescribed above, in one embodiment launch wave 305 is positioned so asto be just above finger 601, if possible. If no movement in a verticaldirection has taken place, the method proceeds to step 510.

A determination is made 510 as to whether the user has moved finger 601in a horizontal direction. If so, a different item 302 on launch wave305 may be highlighted 511 to reflect the horizontal movement. Asdescribed above, in one embodiment the item 302 closest to the point ofcontact is highlighted. In one embodiment, the appearance of launch wave305 may also change, to move the apex of the wave so that it follows thehorizontal position of finger 601. In one embodiment, items 302 maychange in size as described above. In one embodiment, all such changesare performed continuously, so as to avoid jarring or sudden changes tothe display. After step 511 has been performed, the method returns tostep 504 to determine whether the user has activated an item 302.

If no movement in a horizontal direction has taken place, the methodreturns to step 503 wherein the previously highlighted item 302continues to be highlighted.

Although the description provided herein sets forth an example in whichhorizontal movement highlights different items 302, while verticalmovement moves launch wave 305 on screen 101, one skilled in the artwill recognize that the directions of operation may be changed. Forexample, in other embodiments, vertical movement can highlight differentitems 302, while horizontal movement moves launch wave 305. Such anarrangement may be implemented, for example, in connection with a launchwave 305 having a substantially vertical orientation. Other combinationsof motions and effects can also be implemented without departing fromthe essential characteristics of the present invention.

In general, in one embodiment, a position of finger 601 on screen 101can be expressed in terms of two-dimensional coordinate system. A firstcoordinate along a first axis specifies the vertical position of launchwave 305, while a second coordinate along a second, orthogonal axisspecifies which item 302 within launch wave 305 is highlighted.

In addition, references herein to the user's finger 601 are merelyexemplary. In various embodiments, the user can point to areas on screen101 using a finger, thumb, stylus, pen, or any pointing device. In otherembodiments, the user can use a pointing device (such as a mouse,trackpad, trackball, keyboard, five-way switch, or the like) to move anon-screen cursor in order to perform the operations described herein.Thus, the particular descriptions in which reference is made to theuser's finger 601 are not intended to limit the scope of the presentinvention to one particular embodiment.

Scrollable Launch Wave

In one embodiment, any number of items 302 can be included in launchwave 305. If desired, launch wave 305 can be scrollable, so as tofacilitate presentation of more items 302 than can reasonably fit onscreen 101 at any given time. In an embodiment where a scrollable launchwave 305 is implemented, if the user drags finger 601 to near edge ofscreen 101 beyond the rightmost or leftmost item 302, launch wave 305scrolls to cause additional items 302 to be displayed. Items withinlaunch wave 305 may shift position to make room for newly displayeditems 302.

For example, in one embodiment wherein a scrollable launch wave 305 isimplemented, if the user drags finger 601 near rightmost edge of screen101 beyond the rightmost item 302, additional items 302 appear at therightmost edge of launch wave 305. Items 302 within wave 305 are shiftedto the left, and the leftmost displayed item(s) 302 may be removed fromwave 305.

In some embodiments, scrolling is performed smoothly, for example byintroducing new items 302 at a small size and causing them to growand/or fade-in in a continuous fashion. Similarly, items being dismissedcan shrink and/or fade out in a continuous fashion. One skilled in theart will recognize that other techniques can be employed forimplementing a scrollable launch wave 305.

Hierarchical Launch Wave

In one embodiment, a hierarchical launch wave can be implemented. Someor all of the items 302 in launch wave 305 can have subordinate items302, so that the user can navigate a hierarchy of selectable items 302and thereby have access to a larger number of activities that can belaunch via launch wave 305. In addition, the hierarchical arrangementallows items 302 to be organized in a fashion that makes it easier for auser to quickly locate a desired item 302. Any number of levels of thehierarchy can be established, so that subordinate items 302 canthemselves have additional subordinate items 302, to any desired degree.

For example, in one embodiment, the initial presentation of launch wave305 includes top-level items 302, and subordinate items 302 for eachdisplayed top-level item 302 are displayed when the user causes one ofthe top-level items 302 to be highlighted. In one embodiment, the usercan activate a top-level item 302 by simply moving finger 601 away fromthe screen, or can cause individual subordinate items 302 to behighlighted by moving finger 601 towards those items 302.

In one embodiment, subordinate items 302 are displayed after the userhas held finger 601 to highlight a particular top-level item 302 forsome period of time. In another embodiment, subordinate items 302 aredisplayed if the user moves finger 601 in an upward direction by atleast some threshold amount while a top-level item 302 is highlighted.In another embodiment, subordinate items 302 are displayed if the userpresses on display 301 with at least some threshold amount of force. Ineither case, the subordinate items 302 for the highlighted item 302 aredisplayed and the user can then move finger 601 to highlight thesubordinate items 302. In one embodiment, the user can “back out” of alevel of subordinate items 302 by moving his finger downwards by atleast some threshold amount; this causes the subordinate items 302 to bedismissed, and allows the user to again highlight different top-levelitems 302.

Any number of levels can thereby be implemented. In one embodiment,upward movement causes an additional level of subordinate items 302 tobe displayed, if available; downward movement causes the lowestdisplayed level of subordinate items 302 to be dismissed, unless nosubordinate items 302 are currently displayed. Horizontal movementcauses different items 302 within the lowest displayed level to behighlighted. One skilled in the art will recognize that this particulardescription, with its references to horizontal, vertical, upward, anddownward movement, is merely exemplary, and that other configurationsand directions of movement can be implemented.

In one embodiment, activation of an item 302 at any level takes place inthe same manner as described above; in one embodiment, the user removesfinger 601 from display 101 while the desired item 302 is highlighted.In various embodiments, the user can also dismiss launch wave 305 bysliding finger 601 downward off screen 101, or off an edge of screen101.

In one embodiment, some top-level items 302 may not be activatable, buttheir subordinate items 302 may be activatable. In other embodiments,items 302 at all levels can be activatable. In one embodiment,non-activatable items 302 can have a distinctive visual appearance toemphasize that they represent categories of items 302 and are notthemselves activatable.

Referring now to FIGS. 8A through 8C, there is shown a series of screenshots depicting an example of the operation of a hierarchical launchwave 305 according to one embodiment. In this example, a contacts item302B appears within the top level. Highlighting contacts item 302B andactivating it causes a contacts activity to open. Highlighting contactsitem 302B and continuing to move finger 601 in an upward direction (orholding finger 601 over contacts item 302B to cause it to remainhighlighted for some period of time) causes subordinate items 302Fthrough 302K for individual contacts to be displayed. In this manner,the user can navigate directly to an individual contact record byhighlighting and activating one of the displayed subordinate items 302Fthrough 302K. Thus, initial invocation of launch wave 305, navigation tothe desired item 302, and activation of item 302 can all be performed ina single continuous gesture.

FIG. 8A depicts hierarchical launch wave 305 as initially presented inresponse to the user moving finger 601 upwards from gesture area 102onto screen 101. Top-level items 302A through 302E are displayed,including contacts item 302B (and its associated text label 307), whichis associated with subordinate items.

In FIG. 8B, the user has caused subordinate items 302F through 302K tobe displayed. In one embodiment, subordinate items 302F through 302K aredisplayed in response to the user continuing to move finger 601 upward.In another embodiment, subordinate items 302F through 302K are displayedin response to the user continuing to cause contact item 302B to behighlighted for some period of time. In one embodiment, subordinateitems 302F through 302K represent individual contact records fordifferent people. Contact item 302G is highlighted, and its text label307 is shown, since that item 305G is closest to the point of contact ofuser's finger 601.

In FIG. 8C, the user has moved finger 601 in a horizontal direction,causing a different contact item 302J to be highlighted. Here, contactitem 302J is highlighted, and its text label 307 is shown, since thatitem 305G is closest to the point of contact of user's finger 601.

In one embodiment, while the user is navigating among subordinate items302F through 302K, top-level items 302A through 302E continue to bedisplayed, as shown in FIG. 8B. In one embodiment, they may be shown ata smaller size, or grayed-out, or in some other visually subdued ordistinctive manner with respect to subordinate items 302F through 302K.In this manner, the system of the present invention provides a visualindication emphasizing that the user is currently navigating throughsubordinate items 302F through 302K rather than through top-level items302A through 302E. In another embodiment, the appearance of top-levelitems 302A through 302E does not change when the user is navigatingthrough subordinate items 302F through 302K. In yet another embodiment,top-level items 302A through 302E are shown below launch wave 305 whilethe user is navigating through subordinate items 302F through 302K, asdepicted in FIG. 8B.

In yet another embodiment, as shown in FIG. 8C, while the user isnavigating through subordinate items 302F through 302K, top-level items302A through 302E are not displayed. The user can cause top-level items302A through 302E to be displayed by moving finger 601 downwards so asto dismiss subordinate items 302F through 302K.

Any of the above-described configurations can be extended tomultiple-level hierarchies, with successive levels of subordinate items302 being displayed and/or dismissed as appropriate.

Referring now to FIG. 7A, there is shown a method for presenting ahierarchical launch wave 305 according to one embodiment of the presentinvention. In one embodiment, the steps depicted in FIG. 7A areperformed as part of step 509 as described above in connection with FIG.5. Thus, in one embodiment, hierarchical launch wave 305 is implementedusing the general method described above in connection with FIG. 5, withthe addition of steps 701 though 707 as depicted in FIG. 7A.

As described above, in step 508 a determination is made as to whetherthe user has moved his or finger in a vertical direction. If so, adetermination is made 701 as to whether the currently highlighted item302 has any subordinate items and as to whether 702 the user has movedfinger 601 in an upward direction beyond a threshold amount. Thethreshold amount can be any amount, including zero movement. If thecurrently highlighted item 302 has any subordinate items and the userhas moved finger 601 in an upward direction beyond the threshold amount,a row of subordinate items 302 is introduced 703. In addition, ifappropriate, launch wave 305 is moved 707 as indicated by the userinput.

If, in step 701, the currently highlighted item 302 has no subordinateitems, or if in step 702, the user has not moved finger 601 in an upwarddirection beyond the threshold amount, the method proceeds to step 705to determine whether to dismiss any subordinate items 302. Adetermination is made 705 as to whether any subordinate items 302 arebeing displayed, and as to whether 704 the user has moved finger 601 ina downward direction beyond a threshold amount. The threshold amount canbe any amount, including zero movement. The threshold amount fordownward movement may be the same or different than the threshold amountfor upward movement. If subordinate items 302 are being displayed andthe user has moved finger 601 in a downward direction beyond thethreshold amount, at least one row of subordinate items 302 is dismissed706. In addition, if appropriate, launch wave 305 is moved 707 asindicated by the user input.

If, in step 705, no subordinate items 302 are being displayed, of if, instep 704, the user has not moved finger 601 in a downward directionbeyond the threshold amount, the method proceeds to step 707 to movelaunch wave 305 as indicated by the user input.

As indicated above, in other embodiments, the user need not move finger601 upward to cause subordinate items 302 to be displayed. In someembodiments, the user can cause subordinate items 302 to be displayed byholding finger 601 on or near an item 302 having subordinate items 302.After some predetermined period of time, the subordinate items 302 aredisplayed.

Referring now to FIG. 7B, there is shown a flowchart depicting a methodfor presenting a hierarchical launch wave 305 according to an embodimentof the present invention wherein subordinate items 302 are displayed inresponse to the user holding finger 601 on or near an item 302. Steps501 through 506 and step 512 are performed as described above inconnection with FIG. 5. If, in step 512 the user has not attempted todismiss launch wave 305 by dragging finger 601 off screen 101 or by someother action, a determination is made 711 as to whether an item 302 hasbeen highlighted for at least some threshold amount of time (such as,for example 0.5 seconds, although any length of time can be used,including 0 seconds). If so, a determination is made 701 as to whetherthe currently highlighted item 302 has any subordinate items.

If an item 302 has been highlighted for at least some threshold amountof time, and the item 302 has any subordinate items, a row ofsubordinate items 302 is introduced 703. If no item 302 has beenhighlighted for at least some threshold amount of time, or if the item302 does not have any subordinate items, the method proceeds to step508.

A determination is made 508 as to whether the user has moved his orfinger in a vertical direction. If so, a determination is made 705 as towhether any subordinate items 302 are being displayed, and as to whether704 the user has moved finger 601 in a downward direction beyond athreshold amount. The threshold amount can be any amount, including zeromovement. If subordinate items 302 are being displayed and the user hasmoved finger 601 in a downward direction beyond the threshold amount, atleast one row of subordinate items 302 is dismissed 706. In addition, ifappropriate, launch wave 305 is moved 707 as indicated by the userinput.

If, in step 508, the user has not moved his or finger in a verticaldirection, the method proceeds to step 510.

A determination is made 510 as to whether the user has moved his orfinger in a horizontal direction. If so, a different item 302 on launchwave 305 may be highlighted 511 to reflect the horizontal movement. Asdescribed above, in one embodiment the item 302 closest to the point ofcontact is highlighted. In one embodiment, the appearance of launch wave305 may also change, to move the apex of the wave so that it follows thehorizontal position of the user's finger. In one embodiment, items 302may change in size as described above. In one embodiment, all suchchanges are performed continuously, so as to avoid jarring or suddenchanges to the display. After step 511 has been performed, the methodreturns to step 504 to determine whether the user has activated an item302.

If no movement in a horizontal direction has taken place, the methodreturns to step 503 wherein the previously highlighted item 302continues to be highlighted.

One skilled in the art will recognize that many other variations arepossible. For example, the determination in step 711 as to whether todisplay subordinate items 302 can be based on how long an item 302 hasbeen highlighted, and/or how hard the user has pressed on screen 101,and/or whether the user has performed a distinctive gesture to displaysubordinate items 302. Any other suitable mechanism can be used fordetermining that subordinate items 302 should be displayed. Similarly,other mechanisms can be provided for determining whether subordinateitems 302 should be dismissed.

In another embodiment, a hierarchical launch wave 305 can be implementedso that, in response to a trigger event, a grid of items 302 ispresented in a hierarchical arrangement. Thus, the initial presentationof launch wave 305 can include some subset of available items 302. Then,if the user holds a finger 601 over a particular item 302, or movesfinger 601 in an upward direction while a particular item 302 ishighlighted, or performs some other distinctive gesture, display 101 canshow a hierarchically-arranged grid of items 302 related to thehighlighted item 302. The user can then move finger 601 to navigatewithin the grid.

Referring now to FIGS. 9A and 9B, there is shown a series of screenshots depicting an example of a grid layout for a hierarchical launchwave 305 according to one embodiment. In this example, a contacts item(not shown, because it is obscured by finger 601) in the top level oflaunch wave 305 has been highlighted. The user has moved finger in anupward direction (or has held finger 601 over the contacts item to causeit to remain highlighted for some period of time), causing a grid 902 ofsubordinate items 302 for individual contacts to be displayed. In theexample, grid 902 contains three rows 901A, 901B, 901C, although anynumber of rows 901 could be displayed, so as to show the desired numberof items 302. In the example, grid 902 is presented in a perspectiveview, with some rows depicted as though they are positioned behind otherrows.

A frontmost row 901A is shown, containing items 302L, 302M, 302N, 302P,302Q. In the example, finger 601 is positioned near item 302M, so thatitem is highlighted, and label 307 is displayed. In one embodiment,frontmost row 901A is shown using a distinctive visual appearance (suchas bolder and/or larger) as compared with other displayed rows 901B,901C. Rows 901B, 901C also contain items 302.

The user can navigate within a row 901, to cause other items 302 in therow 901 to be highlighted, by moving finger 601 to the left or right.The user can navigate from one row 901 to another 901 by moving finger601 upwards or downwards. The user can select (activate) an item 302within any row 901 by removing finger 601 from display 101 while finger601 is positioned over the desired item 302.

In one embodiment, moving upward to a row 901 that is “behind” thefrontmost currently displayed row 901 causes the frontmost row 901 to bedismissed. The user can cause the frontmost row 901 to reappear bymoving finger 601 in a downward direction. FIG. 9B depicts grid 902after user has moved upward, causing the frontmost row 901A to bedismissed. Accordingly, in FIG. 9B, only rows 901B and 901C are shown.Row 901B contains items 302R, 302S, 302T, 302U, and 302V, with item 302Ubeing highlighted based on the position of finger 601. In addition, FIG.9B shows contacts item 302B since finger 601 no longer obscures it.

In other embodiments, frontmost row 901A is not dismissed when the usernavigates to other rows 901B, 901C.

The grid-based arrangement described herein allows a user to navigatedirectly to an individual contact record by moving to the appropriaterow 901 within grid 902 and highlighting and activating one of thedesired 302. Thus, initial invocation of launch wave 305, navigation tothe desired row 901 and item 302, and activation of item 302 can all beperformed in a single continuous gesture.

The various features described above can be implemented singly or in anycombination, as will be apparent to one skilled in the art.

The present invention has been described in particular detail withrespect to possible embodiments. Those of skill in the art willappreciate that the invention may be practiced in other embodiments.First, the particular naming of the components, capitalization of terms,the attributes, data structures, or any other programming or structuralaspect is not mandatory or significant, and the mechanisms thatimplement the invention or its features may have different names,formats, or protocols. Further, the system may be implemented via acombination of hardware and software, as described, or entirely inhardware elements, or entirely in software elements. Also, theparticular division of functionality between the various systemcomponents described herein is merely exemplary, and not mandatory;functions performed by a single system component may instead beperformed by multiple components, and functions performed by multiplecomponents may instead be performed by a single component.

In various embodiments, the present invention can be implemented as asystem or a method for performing the above-described techniques, eithersingly or in any combination. In another embodiment, the presentinvention can be implemented as a computer program product comprising acomputer-readable storage medium and computer program code, encoded onthe medium, for causing a processor in a computing device or otherelectronic device to perform the above-described techniques.

Reference in the specification to “one embodiment” or to “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiments is included in at least oneembodiment of the invention. The appearances of the phrase “in oneembodiment” in various places in the specification are not necessarilyall referring to the same embodiment.

Some portions of the above are presented in terms of algorithms andsymbolic representations of operations on data bits within a computermemory. These algorithmic descriptions and representations are the meansused by those skilled in the data processing arts to most effectivelyconvey the substance of their work to others skilled in the art. Analgorithm is here, and generally, conceived to be a self-consistentsequence of steps (instructions) leading to a desired result. The stepsare those requiring physical manipulations of physical quantities.Usually, though not necessarily, these quantities take the form ofelectrical, magnetic or optical signals capable of being stored,transferred, combined, compared, transformed, and otherwise manipulated.It is convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers, or the like. Furthermore, it is also convenient attimes, to refer to certain arrangements of steps requiring physicalmanipulations of physical quantities as modules or code devices, withoutloss of generality.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“displaying” or “determining” or the like, refer to the action andprocesses of a computer system, or similar electronic computing moduleand/or device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system memories orregisters or other such information storage, transmission or displaydevices.

Certain aspects of the present invention include process steps andinstructions described herein in the form of an algorithm. It should benoted that the process steps and instructions of the present inventioncan be embodied in software, firmware and/or hardware, and when embodiedin software, can be downloaded to reside on and be operated fromdifferent platforms used by a variety of operating systems.

The present invention also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may comprise a general-purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but is not limited to, any type ofdisk including floppy disks, optical disks, CD-ROMs, magnetic-opticaldisks, read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, application specific integratedcircuits (ASICs), or any type of media suitable for storing electronicinstructions, and each coupled to a computer system bus. Furthermore,the computers and/or other electronic devices referred to in thespecification may include a single processor or may be architecturesemploying multiple processor designs for increased computing capability.

The algorithms and displays presented herein are not inherently relatedto any particular computer, virtualized system, or other apparatus.Various general-purpose systems may also be used with programs inaccordance with the teachings herein, or it may prove convenient toconstruct more specialized apparatus to perform the required methodsteps. The required structure for a variety of these systems will beapparent from the description provided herein. In addition, the presentinvention is not described with reference to any particular programminglanguage. It will be appreciated that a variety of programming languagesmay be used to implement the teachings of the present invention asdescribed herein, and any references above to specific languages areprovided for disclosure of enablement and best mode of the presentinvention.

Accordingly, in various embodiments, the present invention can beimplemented as software, hardware, and/or other elements for controllinga computer system, computing device, or other electronic device, or anycombination or plurality thereof. Such an electronic device can include,for example, a processor, an input device (such as a keyboard, mouse,touchpad, trackpad, joystick, trackball, microphone, and/or anycombination thereof), an output device (such as a screen, speaker,and/or the like), memory, long-term storage (such as magnetic storage,optical storage, and/or the like), and/or network connectivity,according to techniques that are well known in the art. Such anelectronic device may be portable or nonportable. Examples of electronicdevices that may be used for implementing the invention include: amobile phone, personal digital assistant, smartphone, kiosk, desktopcomputer, laptop computer, consumer electronic device, television,set-top box, or the like. An electronic device for implementing thepresent invention may use an operating system such as, for example,Microsoft Windows Vista available from Microsoft Corporation of Redmond,Wash., or any other operating system that is adapted for use on thedevice. In some embodiments, the electronic device for implementing thepresent invention includes functionality for communication over one ormore networks, including for example a cellular telephone network,wireless network, and/or computer network such as the Internet.

Finally, it should be noted that the language used in the specificationhas been principally selected for readability and instructionalpurposes, and may not have been selected to delineate or circumscribethe inventive subject matter. Accordingly, the disclosure of the presentinvention is intended to be illustrative, but not limiting, of the scopeof the invention, which is set forth in the claims.

While the invention has been described with respect to a limited numberof embodiments, those skilled in the art, having benefit of the abovedescription, will appreciate that other embodiments may be devised whichdo not depart from the scope of the present invention as describedherein. In addition, it should be noted that the language used in thespecification has been principally selected for readability andinstructional purposes, and may not have been selected to delineate orcircumscribe the inventive subject matter. Accordingly, the disclosureof the present invention is intended to be illustrative, but notlimiting, of the scope of the invention, which is set forth in theclaims.

1. A method for operating a mobile computing device, the method beingperformed by one or more processors and comprising: detecting a gestureperformed by a user, the gesture including at least a motion that (i) isinitiated by user contact on a touch-sensitive gesture region of themobile computing device with an object, and (ii) continues onto atouch-sensitive display screen of the mobile computing device; and inresponse to detecting the gesture, presenting a launcher interface onthe touch-sensitive display screen, wherein a shape of the launcherinterface dynamically changes based, at least in part, on a location ofthe object while the gesture is performed by the user.
 2. The method ofclaim 1, wherein the launcher interface includes a plurality ofselectable graphic items, each of the plurality of selectable graphicitems corresponding to an application or activity that is operable onthe mobile computing device.
 3. The method of claim 2, furthercomprising: highlighting one of the plurality of selectable graphicitems that is closest to the location of the object while the gesture isperformed by the user by performing at least one of: (i) presenting textcorresponding to the highlighted selectable graphic item, (ii) enlarginga size of the highlighted selectable graphic item, or (iii) decreasing asize of others of the plurality of selectable graphic items.
 4. Themethod of claim 2, wherein presenting the launcher interface comprisesdisplaying a scrollable launcher interface, and wherein the methodfurther comprises: responsive to a user input indicating a scrollingoperation, introducing in the scrollable launcher interface, at leastone additional selectable graphic item.
 5. The method of claim 2,wherein the launcher interface comprises at least one top-level itemassociated with at least one subordinate selectable graphic item, andthe method further comprising: responsive to an additional user inputindicating that, for an indicated top-level item, at least onesubordinate selectable graphic item should be displayed: displaying atleast one subordinate selectable graphic item associated with theindicated top-level item; highlighting the at least one subordinateselectable graphic item; detecting a second additional user inputcomprising movement of a point of contact on the touch-sensitive displayscreen; in response to detecting the second additional user input,altering the shape of the launcher based on the movement of the point ofcontact.
 6. The method of claim 5, wherein at least one of the top-levelitems associated with at least one subordinate selectable graphic itemcomprises a user-activatable top-level item.
 7. The method of claim 5,wherein displaying at least one subordinate selectable graphic itemassociated with the indicated top-level item comprises displaying the atleast one subordinate selectable graphic item at a position subordinateto the indicated top-level item.
 8. The method of claim 2, wherein thelauncher interface comprises at least one top-level item associated withat least one subordinate selectable graphic item, and the method furthercomprising: responsive to an additional user input indicating that, foran indicated top-level item, at least one subordinate selectable graphicitem should be displayed: displaying a grid comprising at least onesubordinate selectable graphic item associated with the indicatedtop-level item; highlighting the at least one subordinate selectablegraphic item; detecting a second additional user input comprisingmovement of a point of contact on the touch-sensitive display screen; inresponse to detecting the second additional user input, highlighting adifferent subordinate selectable graphic item on the grid correspondingto the movement of the point of contact.
 9. A mobile computing devicecomprising: a touch-sensitive display screen; a touch-sensitive gestureregion; and one or more processors coupled to the touch-sensitivedisplay screen and the touch-sensitive gesture region, the one or moreprocessors configured to: detect a gesture performed by a user, thegesture including at least a motion that (i) is initiated by usercontact on the touch-sensitive gesture region with an object, and (ii)continues onto the touch-sensitive display screen; and in response todetecting the gesture, present a launcher interface on thetouch-sensitive display screen, wherein a shape of the launcherinterface dynamically changes based, at least in part, on a location ofthe object while the gesture is performed by the user.
 10. The mobilecomputing device of claim 9, wherein the launcher interface includes aplurality of selectable graphic items, each of the plurality ofselectable graphic items corresponding to an application or activitythat is operable on the mobile computing device.
 11. The mobilecomputing device of claim 10, wherein the one or more processors arefurther configured to highlight one of the plurality of selectablegraphic items that is closest to the location of the object while thegesture is performed by the user.
 12. The mobile computing device ofclaim 11, wherein the one or more processors is configured to highlightone of the plurality of selectable graphic items by performing at leastone of: (i) presenting text corresponding to the highlighted selectablegraphic item, (ii) enlarging a size of the highlighted selectablegraphic item, or (iii) decreasing a size of others of the plurality ofselectable graphic items.
 13. The mobile computing device of claim 11,wherein the one or more processors are further configured to launch anapplication or activity corresponding to the highlighted selectablegraphic item in response to the user removing the object from thetouch-sensitive display screen.
 14. The mobile computing device of claim13, wherein the one or more processors are further configured to dismissthe launcher interface from the touch-sensitive display screen inresponse to the user removing the object from the touch-sensitivedisplay screen.
 15. A non-transitory computer-readable medium thatstores instructions that, when executed by one or more processors, causethe one or more processors to perform operations comprising: detecting agesture performed by a user, the gesture including at least a motionthat (i) is initiated by user contact on a touch-sensitive gestureregion of a mobile computing device with an object, and (ii) continuesonto a touch-sensitive display screen of the mobile computing device;and in response to detecting the gesture, presenting a launcherinterface on the touch-sensitive display screen, wherein a shape of thelauncher interface dynamically changes based, at least in part, on alocation of the object while the gesture is performed by the user.